The present invention relates to enabling communications between or among different operably interconnected devices and, in particular, to providing communications internally and externally of a vehicle, involving disparate subsystems using a common module and appropriate managers.
Communications hardware and associated operations in different makes and models of vehicles continue to expand. There are currently, however, no standards or common procedures by which each of a number of disparate hardware devices can be operatively connected together for common purposes. This lack of effective connectivity inhibits desired communications between and among disparate networks, buses, devices and any other subsystems that might be found in a vehicle. This connectivity deficiency also negatively impacts the ability of one or more remote stations to communicate with such nodes in the vehicle.
Information transfers involving a remote station with hardware subsystems located in a vehicle have been enhanced with the availability of the Internet and wireless systems. A computer or other intelligent device located in the vehicle can communicate with one or more remote stations using. the Internet and wireless technology. U.S. Pat. No. 5,732,074 issued Mar. 24, 1998 entitled xe2x80x9cMobile Portable Wireless Communication Systemxe2x80x9d, which is assigned to the assignee of the present application, describes a system by which a network in the vehicle including a number of devices associated with the network can send and receive information relative to the Internet.
With respect to multiple vehicle disparate subsystems in a vehicle, it is desirable to further facilitate communications both within and outside the vehicle. This can be effectively accomplished by an open architecture that can be responsible for enabling communications among a plethora of present and potential subsystems for use in a vehicle. Such a communications apparatus must be able to handle different communications requirements and facilitate interconnection of the disparate subsystems.
In accordance with the present invention, a communications apparatus is provided to enable information and data transfers between or among disparate subsystems. In an exemplary embodiment, the communications apparatus is contained within a vehicle having a number of disparate subsystems. The disparate subsystems include protocol based units and close-ended devices. The protocol based units can include networks and buses having associated components or peripherals that are interconnected. The close-ended devices are referred to herein as devices that do not have International. Standards Organization (ISO) network layering and typically constitute a terminating communication node in the context of data flow ending or originating from such a device, and not typically acting as a link or pass through device for information or data transfers. An example of such a close-ended device might be a global positioning system (GPS) that is useful in providing vehicle location information or a hardware device, such as a vehicle sensor from which data can be obtained for a particular vehicle component to which the sensor is operably connected
In addition to the GPS, disparate subsystems may include an Internet protocol (IP) stack comprised of a number of network layers that are commonly involved in transfers using the Internet, a controller area network (CAN) found in at least some vehicles and which includes a bus along which a number of vehicle elements, communicate for supplying information concerning such elements. The disparate subsystems can also include an intelligent transportation system data bus (IDB) and/or an onboard diagnostics (OBD) that are involved with monitoring and providing information related to vehicle components. Voice recognition (VR) technology and text-to-speech (TTS) technology can also be part of the group of disparate subsystems and which are involved in facilitating speech control and response communications in the vehicle. Other disparate subsystems may include an analog/digital converter (ADC), a standard serial bus, a universal serial bus (USB), a user datagram packet/Internet protocol stack and a cellphone, as well as one or more other customer proprietary devices.
In conjunction with enabling communications between and among the disparate subsystems, as well as communications outside the vehicle, the communications apparatus includes a common module and a number of disparate subsystem managers. The common module is defined as being comprised of a number of common module managers, which may include one or more of the following: a base manager for handling registration and de-registration of disparate subsystem managers, as well as other components or component processees that perform communication tasks; a configuration manager for use in downloading applications, configuring routing tables, reviewing error logs and other assigned tasks; a diagnostics manager for collecting and relaying diagnostic data; a security manager for use in, among other things, monitoring external applications attempting to connect to the communications apparatus for security purposes; a flow manager having the ability, to interconnect children (child processes) of managers in order to perform operations on data passing through them; compression/decompression managers involved with compressing and de-compressing data being communicated; and encryption/de-encryption managers for encrypting/de-encrypting data, as well as user-defined services, that can process, filter or otherwise act on available data.
The disparate subsystem managers can communicate with each other involving the common module functionalities using at least one common protocol. In a preferred embodiment, two communication protocols are available. These are identified as a bus applications programming interface (API) and a stream API. The bus communication is useful in applications in which a number of independent components are involved in the communication, while, stream communication is useful for unstructured stream data between two components.
With respect to the number of disparate subsystem managers, a dedicated one disparate subsystem manager is defined as communicating with a particular disparate subsystem. Accordingly, the number of disparate subsystem managers is equal to at least the number of disparate subsystems. For example, a TCP/IP stack operably communicates with a TCP/IP manager in order to participate in the functionalities and features associated with the communications apparatus. Each disparate subsystem manager provides functions that are common, namely: providing a native interface to the specific disparate subsystem with which it communicates, providing an interface to the common module, and performing a number of management functions. Conversely, because of the dissimilarities among the disparate subsystems, many of the disparate subsystem managers have different software capabilities that are unique to the particular disparate subsystem for which it has responsibility.
With respect to the interoperability among the disparate subsystems and the communications apparatus, an exemplary operation is next described. A request for data or other information might originate from a source or site external to a vehicle having a communications apparatus. This request for information is communicated wirelessly using the Internet and its TCP/IP communication protocol and in which at least the vehicle has an Internet address, although components in the vehicle may also have separate Internet addresses. Wireless technology in the vehicle receives this Internet communication and it is routed or received by the TCP/IP disparate subsystem or protocol stack. The request for information is handled by the TCP/IP manager that is in direct communication with the TCP/IP disparate subsystem. Based on its recognition of the contents of the request for information, such as a configuration packet, the TCP/IP manager creates a first child process for establishing a stream API (application programmer""s interface) for transferring the requested information in stream form. In one embodiment, from the contents of the request, fox information, the TCP/IP manager is involved with at least some, if not all, of the request to a second manager that will be involved in obtaining the requested information. By way of example, the second manager might be the GPS manager, where the requested information includes NMEA data from a GPS disparate subsystem. In such a case, the informations related to the request received by the GPS manager is utilized by it to manage or otherwise control the obtaining of data from the GPS subsystem. In that regard, a second child process associated with obtaining the data from the GPS subsystem by a stream API is created. The second child process cooperates with the first child process to transmit the requested information from the GPS subsystem to the requesting source external to the vehicle. As part of creating each child process, the common module also is involved, through its base manager, in the registration of the dynamically created first and second child processees. When the request for information is satisfied, such child processees can be de-registered using the base manager. Utilization of such child processees enables the managers to function with multiple requests that are simultaneously satisfied or have overlapping needs for the same services using the same managers. The child processees may be spawned through the responsibility or management of other managers, such as the flow manager. Additionally, services associated with the obtaining of the data might be employed including compression of the obtained information and encryption thereof, as well as reliance on the security manager to insure that the request for information has authorized access to the communications apparatus.
In one embodiment, data gathering and other communications are facilitated involving a fleet of vehicles, with each having an embedded communications apparatus. Instead of the owner/operator of the vehicle fleet directly accessing each of communications apparatuses in the vehicles of its fleet, a portal apparatus acts as a communications link between vehicle fleets and the fleet managing subsystem. The portal apparatus facilitates downloading of software configurations and updates to each communications apparatus in the vehicles of the particular fleet, as well as facilitating the obtaining of vehicle operational data and other information including diagnostic data and status information including fault-related data.
Based on the foregoing summary, a number of salient aspects of the present invention are readily identified. Transfers of information including data relative to different devices, buses and/or networks are substantially seamlessly achieved. Such transfers can be accomplished among these different subsystems without requiring that they be modified, thereby achieving a xe2x80x9cplug and playxe2x80x9d result. The disparate subsystems include protocol dependent components as well as close-ended devices at which data flow originates or is terminated, such as a GPS. Consequently, the communications apparatus of the present invention handles communications among devices that are not characterized by ISO network layering. The disparate subsystems communicate with each other using a common communications protocol involving a common module. Communications can occur involving the common module, both externally and internally of a vehicle. Such communication transfers can include: data logging, application program downloading, vehicle component or sensor monitoring and vehicle location information. In one embodiment, management of fleet vehicles is augmented by a portal apparatus located intermediate a number of communications apparatuses embedded in fleet vehicles and fleet management subsystems.
Additional advantages of the present invention will become readily apparent from the following discussion, particularly when taken together with the accompanying drawings